/**
 * URL : {
 * 		controller:{
 * 			item:'action',
 * 			action_postfix:{
 * 				item:'action_?',
 * 				item2:'#action',
 * 				item3:'##controller/action'
 * 			}
 * 		}
 * }
 */

Ext.define('TS.lib.URL',{
	constructor:function(rc){
		_ = function(controller,action){
			if (!action){
				return SERVER.base_url +'/'+controller;
			} else return SERVER.base_url +'/'+controller+'/'+action;
		}
		loop = function(c,z,pz){ /// {z:1,utils:{x:1}}
			var thiz = {};
			for(x in c){
				if(Ext.isString(c[x])){
					if(c[x].indexOf('##')==0){
						thiz[x]= _(c[x].substr(2)); 
					} else if (c[x].indexOf('#')==0){
						thiz[x]= _(pz||z||x,c[x].substr(1))
					} else if (c[x].indexOf('$')==0){
						thiz[x] = _(pz||z||x,pz?x+z:x);// jesli jest na root zanczy jedna akcja w kontrolerze;	
					} else {
						thiz[x] = _(pz||z||x,pz?c[x]+z:c[x]);// jesli jest na root zanczy jedna akcja w kontrolerze;	
					}
				} else {
					thiz[x] = loop(c[x],x,z);
				}
			}
			return thiz;
		}
		Ext.apply(this,loop(rc));
	},
	base:SERVER.base_url,
	icon:function(ico){
		return this._('/img/icons/'+ico);
	},
	_:function(url){	
		//log(this);
		return SERVER.base_url+url;
	}
});